package com.priox.sigar.client.dto;

import com.priox.sigar.enums.ActivoInactivo;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: Johann
 * Date: 28/08/13
 * Time: 02:30 PM
 * To change this template use File | Settings | File Templates.
 */
public class ClienteDTO extends AuditoriaDTO {


    private String clienteId;

    @NotNull
    @NotEmpty
    private String razonSocial;

    private String creadoPor;

    public String getCreadoPor() {
        return creadoPor;
    }

    public void setCreadoPor(String creadoPor) {
        this.creadoPor = creadoPor;
    }

    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    private Date fechaCreacion;


    private ActivoInactivo estado;


    private List<SociedadDTO> sociedades= new ArrayList<SociedadDTO>();

    private List<ClienteSociedadDTO> clienteSociedad= new ArrayList<ClienteSociedadDTO>();


    private String sociedadId;

    public String getClienteId() {
        return clienteId;
    }

    public void setClienteId(String clienteId) {
        this.clienteId = clienteId;
    }

    public String getRazonSocial() {
        return razonSocial;
    }

    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    public ActivoInactivo getEstado() {
        return estado;
    }

    public void setEstado(ActivoInactivo estado) {
        this.estado = estado;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ClienteDTO that = (ClienteDTO) o;

        if (clienteId != null ? !clienteId.equals(that.clienteId) : that.clienteId != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return clienteId != null ? clienteId.hashCode() : 0;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this).
                append("razonSocial", razonSocial).

                append("estado", estado).

                toString();
    }

    public List<SociedadDTO> getSociedades() {
        return sociedades;
    }

    public void setSociedades(List<SociedadDTO> sociedades) {
        this.sociedades = sociedades;
    }

    public String getSociedadId() {
        return sociedadId;
    }

    public void setSociedadId(String sociedadId) {
        this.sociedadId = sociedadId;
    }

    public List<ClienteSociedadDTO> getClienteSociedad() {
        return clienteSociedad;
    }

    public void setClienteSociedad(List<ClienteSociedadDTO> clienteSociedad) {
        this.clienteSociedad = clienteSociedad;
    }
}
